﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using UricaoWeb.LogicaDeNegocios.Reportes_Graficos___Housekeeping___Limpieza;
using System.Configuration;

namespace UricaoWeb.Datos.ConexionBD.Reportes_Graficos___Housekeeping___Limpieza
{
    public class Reporte
    {
        private ManejoBD conexion;
        private DataTable resultado;
        private List<DatoReporte> listaDeDatos;

        ///<sumary>
        ///Metodo que se encarga de suministrar los registros indicados para el grafico de barra
        ///Parámetros: 
        ///String consulta: query necesario para plasmar la informacion del grafico 
        ///List<Parametro> parametros: listado de parametros 
        ///Retorno: 
        ///Date Table: registros obtenidos  
        ///</sumary>
        public DataTable DatosGraficoDeBarra(string consulta, List<Parametro> parametros)
        {
            conexion = new ManejoBD(consulta, ConfigurationManager.ConnectionStrings["UricaoBD"].ConnectionString);

            resultado = conexion.Consultas(parametros);

            if (resultado != null)
            {
                return resultado;
            }
            else
            {
                return null;
            }
        }

        ///<sumary>
        ///Metodo que se encarga de suministrar los registros indicados para el grafico de torta
        ///Parámetros: 
        ///String consulta: query necesario para plasmar la informacion del grafico 
        ///List<Parametro> parametros: listado de parametros 
        ///Retorno: 
        ///List<Dato Reporte> listaDeDatos: registros obtenidos  
        ///</sumary>
        public List<DatoReporte> DatosGraficoDeTorta(string consulta, List<Parametro> parametros)
        {
            conexion = new ManejoBD(consulta, ConfigurationManager.ConnectionStrings["UricaoBD"].ConnectionString);

            resultado = conexion.Consultas(parametros);

            if (resultado != null)
            {

                return listaDeDatos = LlenarListaDeDatos();
            }
            else
            {
                return null;
            }

        }

        ///<sumary>
        ///Metodo que se encarga de llenar una lista con los datos suministrados 
        ///Parámetros: 
        ///String consulta: query necesario para plasmar la informacion del grafico 
        ///List<Parametro> parametros: listado de parametros 
        ///Retorno: 
        ///List<Dato Reporte> lista: registros obtenidos 
        ///</sumary>
        private List<DatoReporte> LlenarListaDeDatos()
        {
            List<DatoReporte> lista = new List<DatoReporte>();
            try
            {
                for (int i = 0; i < resultado.Rows.Count; i++)
                {
                    DatoReporte informacion = new DatoReporte();
                    informacion.Dato = resultado.Rows[i][0].ToString();
                    informacion.Cantidad = Convert.ToInt32(resultado.Rows[i][1].ToString());
                    lista.Add(informacion);
                }

                return lista;
            }
            catch (FormatException)
            {
                return lista;
            }
        }
            



    }
}